#include<iostream>
#include<string>
#include<fstream>
#include"bundle.h"

int main(int argc,char*argv[])                //./compress  ./httplib.h   ./httplib.h.lz
{
std::cout<<"argv[1] 是原始文件路径名称\n";    //           ./httplib.h
std::cout<<"argv[2] 是压缩文件路径名称\n";    //           ./httplib.h.lz
if(argc<3)                        //表示参数不够
return -1;                        //退出返回
std::string ifilenname=argv[1];   //原始文件名称
std::string ofilenname=argv[2];   //压缩文件名称
std::ifstream ifs;                //定义文件对象
ifs.open(ifilenname,std::ios::binary);//以二进制方式打开文件
ifs.seekg(0,std::ios::end);           //将光标移动文件末尾
size_t fsize=ifs.tellg();             //计算偏移量（文件大小）
ifs.seekg(0,std::ios::beg);              //将光标移动文件开头
std::string body;                       //将文件内容读入body
body.resize(fsize);                    //设置字符串长度为fsize
ifs.read(&body[0],fsize);              //将文件内容读入body(以二进制形式)
                                       //此时body中保存的就是要压缩文件的二进制字符串
std::string packed=bundle::pack(bundle::LZIP,body); //以lzip格式压缩文件内容，压缩之后的信息放在字符串中
std::ofstream ofs;                           //压缩文件对象
ofs.open(ofilenname,std::ios::binary);        //打开压缩文件
ofs.write(&packed[0],packed.size());      //将压缩文件内容写入文件
ifs.close();                          //关闭原始文件
ofs.close();                                  //关闭压缩文件

return 0;

}